export function stringifyTemplate(obj) {
  return JSON.stringify(obj, (key, val) => {
    if (typeof val === 'function') {
      return `${val}`
    }
    return val
  })
}

export function parseTemplate(str) {
  return JSON.parse(str, (k, v) => {
    if (k === 'matchJs'
      || k === 'viewJs'
      || k === 'initJs'
      || k === 'source'
      || k === 'code') {
      return v
    }
    // 其他属性对应的值可能存在'function'字符串，或者存在匿名函数等情况
    // 举例：模板模块存在一个字段名为：function_name，判断会成立
    // 暂时处理 硬性排除
    // if ((k === 'designLayout'
    // || k === 'outputHtml'
    // || k === 'propertyLayout' 
    // || k === 'outputData' 
    // || k === 'outputOptions' 
    // || k === 'outputImport'
    // || k === 'outputComponent')
    //  && v) {
    //   return v.indexOf('function') == 0 ? eval(`(${v})`) : eval(`(function ${v})`)
    // }
    return v
  })
}
